﻿//+-----------------------------------------------------------------------------
//|
//| Copyright (C) 2008, Magnus Ostberg, aka Magos
//| Contact: MagosX@GMail.com, http://www.magosx.com
//|
//| This file is part of MdxLib.
//| MdxLib is a library to manipulate (load, modify, save) models for the
//| game WarCraft 3. It can (and is supposed to) be freely used in tools
//| and programs made by other developers.
//|
//| WarCraft is a trademark of Blizzard Entertainment, Inc.
//|
//| MdxLib is free software: you can redistribute it and/or modify
//| it under the terms of the GNU General Public License as published by
//| the Free Software Foundation, either version 3 of the License, or
//| (at your option) any later version.
//|
//| MdxLib is distributed in the hope that it will be useful,
//| but WITHOUT ANY WARRANTY; without even the implied warranty of
//| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
//| GNU General Public License for more details.
//|
//| You should have received a copy of the GNU General Public License
//| along with MdxLib. If not, see <http://www.gnu.org/licenses/>.
//|
//| This header must remain unaltered if changes are made to the file.
//| Additional information may be added as needed.
//|
//+-----------------------------------------------------------------------------
namespace MdxLib
{
	/// <summary>
	/// Contains all (global) constants.
	/// </summary>
	public static class CConstants
	{
		/// <summary>
		/// Represents an invalid ID.
		/// </summary>
		public const int InvalidId = -1;

		/// <summary>
		/// Represents an invalid index.
		/// </summary>
		public const int InvalidIndex = -1;

		/// <summary>
		/// The default model version, for WarCraft 3 models.
		/// </summary>
		public const int DefaultModelVersion = 800;

		/// <summary>
		/// The default blend time, for WarCraft 3 models.
		/// </summary>
		public const int DefaultModelBlendTime = 150;

		internal const int SizeTag = 4;
		internal const int SizeName = 80;
		internal const int SizeFileName = 260;

		internal const string HeaderName = "MdxLib";
		internal const string HeaderVersion = "1.04";
		internal const string HeaderAuthor = "Magnus Ostberg, aka Magos";
		internal const string HeaderFullName = "Generated by " + HeaderName + " v" + HeaderVersion + " (written by " + HeaderAuthor + ")";
		internal const string HeaderUrl = "http://www.magosx.com";
		internal const string HeaderDateFormat = "yyyy-MM-dd HH:mm:ss";

		internal static readonly Primitives.CVector2 DefaultVector2 = new Primitives.CVector2();
		internal static readonly Primitives.CVector3 DefaultVector3 = new Primitives.CVector3();
		internal static readonly Primitives.CVector4 DefaultVector4 = new Primitives.CVector4();
		internal static readonly Primitives.CExtent DefaultExtent = new Primitives.CExtent();
		internal static readonly Primitives.CInterval DefaultInterval = new Primitives.CInterval();
		internal static readonly Primitives.CSegment DefaultSegment = new Primitives.CSegment();

		internal static readonly Primitives.CVector3 DefaultTranslation = new Primitives.CVector3(0.0f, 0.0f, 0.0f);
		internal static readonly Primitives.CVector4 DefaultRotation = new Primitives.CVector4(0.0f, 0.0f, 0.0f, 1.0f);
		internal static readonly Primitives.CVector3 DefaultScaling = new Primitives.CVector3(1.0f, 1.0f, 1.0f);
		internal static readonly Primitives.CVector3 DefaultColor = new Primitives.CVector3(1.0f, 1.0f, 1.0f);

		internal static System.Text.Encoding TextEncoding = System.Text.Encoding.UTF8;
		internal static System.Text.Encoding SimpleTextEncoding = System.Text.Encoding.ASCII;
		internal static System.Globalization.NumberFormatInfo NumberFormat = System.Globalization.NumberFormatInfo.InvariantInfo;
	}
}
